// pages/search/search.js
import { toast } from '../../utils/extendApi'
import {searchGetList} from '../../api/shop'
import { reqGetCakeList} from '../../api/cate'
import {getStorage, setStorage,removeStorage} from '../../utils/storage'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        search: ' 小熊蛋糕 超值6寸 🎂 ',
        searchval:'',//搜索的值
        currentCategory:'',
        categories: '',
        goodsList:'',
        historyList:'',//存储历史搜索，最多显示六条
        showclear:true,//显示清楚
    },
    //点击标签获取信息
    click(e){
      const val=e.currentTarget.dataset.val;
      this.setData({searchval:val});
      this.searchgetList(val);
    },
    //后台处理的搜索
    async searchgetList(searchval){
      if(searchval!=''){
        const res=await searchGetList(searchval);
        this.setData({
          goodsList:res.data.cakeList
        })
      }else{
        toast({ title: '请输入值'});
      }
    },
    //一些点击且存错的逻辑代码
    stockpile(){
      if(this.data.searchval!=''){
        this.searchgetList(this.data.searchval);
      }else{
        toast({ title: '请输入值'});
        return;
      }
      var hisArr=this.data.historyList;
      //新增historyList
      if(this.data.historyList.length>=5){
        for(let i=0;i<=5;i++){
          if(hisArr[i]==this.data.searchval){
            return;
          }
          if(i<5){
            hisArr[i]=this.data.historyList[i+1];//将后面的数组移到前面去
          }else{
              hisArr[i]=this.data.searchval;
            }
        }
      }else{
        let flag=true;
        for(let i=0;i<this.data.historyList.length;i++){
          //判断是否有相同属性
          if(hisArr[i]==this.data.searchval){
            flag=false;
            return;
          }
        }
        if(!flag){
          return;
        }
        if(hisArr.length!=0){
          hisArr.push(this.data.searchval);
        }else{
          hisArr=[this.data.searchval];
          this.setData({
            showclear:true
          })
        }
      }
      this.setData({
        historyList:hisArr
      })
      //将历史记录存储到本地
      setStorage("historyList",hisArr)
    },
    //搜索方法
    searchcake(){
      this.stockpile();
    },
    clearhistory(){
      //清楚历史搜索
      this.setData({
        historyList:'',
        showclear:false
      })
      //清楚本地缓存
      removeStorage("historyList")
    },
    async getCategories() {
      try {
        const res = await reqGetCakeList(1);
        console.log("这是根据分类id获取商品列表的数据：");
        console.log(res);
        if (res && res.code === 200 && res.data && res.data.cakeListByCategoryId) {
          this.setData({
            goodsList: res.data.cakeListByCategoryId
          });
        } else {
          throw new Error('商品数据异常');
        }
      } catch (err) {
        toast({ title: '商品加载失败', icon: 'none' });
        console.error(err);
      }
    },
  
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
      this.getCategories();
      //获取历史记录
      let hisArr=getStorage("historyList");
      if(hisArr==null){
        hisArr=[];
        this.setData({
          showclear:false
        })
      }
      this.setData({
        historyList:hisArr
      })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})